package com.piggy.logi.sys.service;

import com.piggy.logi.sys.api.domain.LogiSysUser;
import com.piggy.logi.sys.domain.LogiSysUserOnline;
import com.piggy.sys.api.model.LoginUser;

/**
 * 在线用户 服务层
 *
 * @author shark
 */
public interface ILogiSysUserOnlineService {
    /**
     * 通过登录地址查询信息
     *
     * @param ipaddr 登录地址
     * @param user   用户信息
     * @return 在线用户信息
     */
    public LogiSysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser<LogiSysUser> user);

    /**
     * 通过用户名称查询信息
     *
     * @param userName 用户名称
     * @param user     用户信息
     * @return 在线用户信息
     */
    public LogiSysUserOnline selectOnlineByUserName(String userName, LoginUser<LogiSysUser> user);

    /**
     * 通过登录地址/用户名称查询信息
     *
     * @param ipaddr   登录地址
     * @param userName 用户名称
     * @param user     用户信息
     * @return 在线用户信息
     */
    public LogiSysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser<LogiSysUser> user);

    /**
     * 设置在线用户信息
     *
     * @param user 用户信息
     * @return 在线用户
     */
    public LogiSysUserOnline loginUserToUserOnline(LoginUser<LogiSysUser> user);
}
